package com.ktjy.mapper;

import com.ktjy.pojo.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
import java.util.Objects;

public interface SysUserMapper {
    /**
     * 统计用户表的记录数
     * @return
     */
    public int count();

    public List<SysUser> getUserList();

    /**
     * 新增
     * @param sysUser
     * @return
     */
    public int insert(SysUser sysUser);

    /**
     * 修改
     * @param sysUser
     * @return
     */
    public int update(SysUser sysUser);

    /**
     * 删除
     * @param id
     * @return
     */
    public int delete(Long id);

    /**
     * 根据真实名字进行模糊查询
     * @param realName
     * @return
     */
    public List<SysUser> getUsersByRealName(@Param("realName") String realName);

    /**
     * 根据名字和角色查询
     * @param realName
     * @param roleId
     * @return
     */
    public List<SysUser> getUsersByPrams(@Param("realName") String realName,
                                         @Param("roleId") Long roleId);


    /**
     * 根据名字和角色查询
     * @param sysUser
     * @return
     */
    public List<SysUser> getUsersByPojo(SysUser sysUser);

    /**
     * 根据名字和角色查询
     * @param map
     * @return
     */
    public List<SysUser> getUsersByMap(Map<String, Object> map);

//    public List<SysUser> getUserListWithRoleName(SysUser sysUser);

    /**
     * 根据角色id查询用户信息的时候把用户所拥有的角色也查询出来
     * @param roleId
     * @return
     */
    public List<SysUser> getUserListByRoleId(@Param("roleId") Long roleId);

    /**
     * 查询用户信息的时候把该用户所拥有的地址信息也查询出来
     * @param userId
     * @return
     */
    public List<SysUser> getUserAndAddressByUserId(@Param("userId") Long userId);
}
